package com.ikos.web.modules.common;

/**
 * 常量
 */
public class Constant {

    /**
     *   这个key  是 shiro authorization 权限 信息存储地址
     *   RedisManager 自动生成的 前缀 + name + ：
     *   如更换  项目 或者  包名  都需更改
     */
    public static final String SHIRO_CACHE_KEY = "shiro:cache:com.sansence.sky.modules.sys.OAuth2.OAuth2Realm.authorizationCache:";

    /** 超级管理员ID */
    public static final int SUPER_ADMIN = 1;
    /**
     * 当前页码
     */
    public static final String PAGE = "page";
    /**
     * 每页显示记录数
     */
    public static final String LIMIT = "limit";
    /**
     * 排序字段
     */
    public static final String ORDER_FIELD = "sidx";
    /**
     * 排序方式
     */
    public static final String ORDER = "order";
    /**
     *  升序
     */
    public static final String ASC = "asc";
    /**
     * 菜单类型
     *
     */
    public enum MenuType {
        /**
         * 目录
         */
        CATALOG(0),
        /**
         * 菜单
         */
        MENU(1),
        /**
         * 按钮
         */
        BUTTON(2);

        private int value;

        MenuType(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }

    /**
     * 定时任务状态
     *
     */
    public enum ScheduleStatus {
        /**
         * 正常
         */
        NORMAL(0),
        /**
         * 暂停
         */
        PAUSE(1);

        private int value;

        ScheduleStatus(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }

    /**
     * redis-OK
     */
    public final static String OK = "OK";

    /**
     * redis过期时间，以秒为单位，一分钟
     */
    public final static int EXRP_MINUTE = 60;

    /**
     * redis过期时间，以秒为单位，一小时
     */
    public final static int EXRP_HOUR = 60 * 60;

    /**
     * redis过期时间，以秒为单位，一天
     */
    public final static int EXRP_DAY = 60 * 60 * 24;

    /**
     *  AES密码加密私钥(Base64加密)
      */
    public final static String   ENCRYPTAESKEY   = "V2FuZzkyNjQ1NGRTQkFQSUpXVA==";

    /**
     *  // JWT认证加密私钥(Base64加密)
     */
    public final static String ENCRYPTJWTKEY = "U0JBUElKV1RkV2FuZzkyNjQ1NA==";

    /**
     * AccessToken过期时间-5分钟-5*60(秒为单位)
     */
    public final static int ACCESSTOKENEXPIRETIME = 5*60;

    /**
     * RefreshToken过期时间-30分钟-30*60(秒为单位)
     */
    public final static int REFRESHTOKENEXPIRETIME=30*60;

    /**
     * Shiro缓存过期时间-5分钟-5*60(秒为单位)(一般设置与AccessToken过期时间一致)
     */
    public final static int SHIROCACHEEXPIRETIME=300;

    /**
     * redis-key-前缀-shiro:cache:
     */
    public final static String PREFIX_SHIRO_CACHE = "shiro:cache:";

    /**
     * redis-key-前缀-shiro:access_token:
     */
    public final static String PREFIX_SHIRO_ACCESS_TOKEN = "shiro:access_token:";

    /**
     * redis-key-前缀-shiro:refresh_token:
     */
    public final static String PREFIX_SHIRO_REFRESH_TOKEN = "shiro:refresh_token:";

    /**
     * JWT-account:
     */
    public final static String ACCOUNT = "account";

    /**
     * JWT-currentTimeMillis:
     */
    public final static String CURRENT_TIME_MILLIS = "currentTimeMillis";
}
